// 提交链接 https://leetcode.cn/problems/frequency-of-the-most-frequent-element/submissions/559451138/
// 1838. 最高频元素的频数
// 完成日期： 2024.8.30
// c++ 使用双指针枚举最高频的数，模拟过程


class Solution {
public:
    int maxFrequency(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int l = nums.size() - 1, r = nums.size() - 1;
        int ans = 0;
        int flag = 0;
        long long temp = k;
        while (l >= 0)
        {
            if (flag)
            {
                temp -= nums[r] - nums[l];
                flag = 0;
            }
            if (temp >= 0)
            {
                ans = max(ans, r - l + 1);
                l -= 1;
                flag = 1;
            }
            else
            {
                temp += (long long)(r - l) * (nums[r] - nums[r - 1]);
                r -= 1;
            }
        }
        return ans;
    }
};